var FixBase = new Ext.extend(Ext.Panel, {
	border : false,
	layout : 'border',
	initComponent : function() {
		this.initEditPanel();
		this.initList();
		this.items = [this.editPanel, this.list];
		FixBase.superclass.initComponent.call(this);
	},
	addOrUpdate : function(isAdd) {
		var me = this;
		if (this.win) {
			this.win.close();
		}
		var rec = this.grid.getRecord();
		if (!isAdd) {
			if (!rec) {
				TopMy.alert('请选择要修改的记录！');
				return;
			}
		}
		this.form = new TopExt.FormPanel({
					border : false,
					autoScroll : true,
					padding : 5,
					defaults : {
						xtype : 'textfield',
						anchor : '100%'
					},
					labelWidth : 70,
					labelAlign : 'right',
					items : [{
								xtype : 'hidden',
								name : 'roleid'
							}, {
								name : 'rolename',
								fieldLabel : '角色名称',
								allowBlank : false
							}, {
								xtype : 'textarea',
								name : 'remark',
								fieldLabel : '备&emsp;&emsp;注'
							}],
					listeners : {
						afterrender : function(t) {
							if (!isAdd) {
								t.getForm().loadRecord(rec);
							}
						}
					}
				});
		this.win = new TopExt.Window({
					title : isAdd ? '新增角色信息' : '更新角色信息',
					width : 380,
					autoHeight : true,
					modal : true,
					items : [this.form],
					buttons : [{
								text : '保存',
								iconCls : 'icon-save',
								handler : function() {
									var url = My
											.url('/system/permis/role/add.do');
									if (!isAdd) {
										url = My
												.url('/system/permis/role/update.do');
									}
									TopMy.submit(me.form, {
												url : url,
												successCallback : function() {
													me.win.close();
													me.grid.getStore().reload();
												}
											});
								}
							}, {
								text : '取消',
								iconCls : 'icon-cancel',
								handler : function() {
									me.win.close();
								}
							}]
				});
		this.win.show();
		return this.form;
	},
	initList : function() {
		var me = this;
		this.list = new Ext.grid.GridPanel({
			title : '基础表列表',
			region : 'west',
			width : 300,
			split : true,
			loadMask : true,
			hideHeaders : true,
			collapsible : true,
			collapseMode : 'mini',
			headerStyle : 'border-left:0;border-top:0;',
			bodyStyle : 'border-left:0;border-bottom:0;',
			store : new Ext.data.JsonStore({
				fields : ['tablename', 'chinesename', 'keys'],
				url : My.url('/system/common/queryBySql.do'),
				baseParams : {
					sql : "select * from t_tables where tablename in(select distinct tablename from t_col_fix)"
				},
				root : 'data',
				autoLoad : true,
				listeners : {
					load : function() {
						me.list.getSelectionModel().selectFirstRow();
					}
				}
			}),
			sm : new Ext.grid.RowSelectionModel({
				listeners : {
					rowselect : function(t, i, r) {
						// 加载菜单
						var rec = me.list.getStore().getAt(i);
						var tablename = rec.data.tablename;
						var iframe = me.editPanel.getIFrame();
						iframe.el.dom.src = My
								.url('/system/database/fixbase/renderGrid.do?tablename='
										+ tablename + '&keys=' + rec.data.keys);
					}
				}
			}),
			viewConfig : {
				forceFit : true
			},
			cm : new Ext.grid.ColumnModel({
						columns : [{
									dataIndex : 'tablename',
									header : '基础表',
									renderer : function(v, m, r) {
										return v + '（' + r.data.chinesename
												+ '）';
									}
								}]
					})
		});
	},
	initEditPanel : function() {
		this.editPanel = new Ext.Panel({
					region : 'center',
					title : '双击进行编',
					layout : 'fit',
					headerStyle : 'border-top:0;border-right:0;',
					bodyStyle : 'border-bottom:0;border-right:0;',
					getIFrame : function() {
						var iframe = this.getComponent('editgrid_base');
						return iframe;
					},
					items : [{
								xtype : 'container',
								itemId : 'editgrid_base',
								autoEl : {
									tag : 'iframe',
									name : 'editgrid_base',
									src : '',
									frameborder : 0
								}
							}]
				});
	},
	setDisabled : function(disabled) {
		var me = this;
		var rec = me.grid.getRecord();
		if (disabled) {
			if (!rec) {
				My.alert('请选择要禁用的角色信息！');
				return;
			}
			My.confirm('确定要禁用该角色吗？', function(btn) {
						if (btn == 'no') {
							return;
						}
						My.request({
									url : My
											.url('/system/permis/role/setDisabled.do'),
									params : {
										roleid : rec.data.roleid,
										disabled : '1'
									},
									successCallback : function() {
										me.grid.getStore().reload();
									}
								});
					});
		} else {
			if (!rec) {
				My.alert('请选择要启用的角色信息！');
				return;
			}
			My.request({
						url : My.url('/system/permis/role/setDisabled.do'),
						params : {
							roleid : rec.data.roleid,
							disabled : '0'
						},
						successCallback : function() {
							me.grid.getStore().reload();
						}
					});
		}
	},
	dele : function() {
		var me = this;
		var rec = me.grid.getRecord();
		if (!rec) {
			My.alert('请选择要删除的角色信息 ！');
			return;
		}
		My.confirm('确定要删除该角色吗？', function(btn) {
					if (btn == 'no') {
						return;
					}
					My.request({
								url : My.url('/user/delete.do'),
								params : {
									roleid : rec.data.roleid
								},
								successCallback : function() {
									me.grid.getStore().reload();
								}
							});
				});
	}
});

Ext.onReady(function() {
			new Ext.Viewport({
						layout : 'fit',
						items : [new FixBase()]
					});
		});